package com.freeman.cement.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.freeman.cement.myenum.Enabled;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

//摄像头
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("camera")
public class Camera {
    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 唯一标识
     */
    @TableField("cameraIndexCode")
    private String cameraIndexCode;
    /**
     * 摄像头名称
     */
    @TableField("cameraName")
    private String cameraName;
    /**
     * 状态 摄像头在线/不在线
     * 海康平台返回，在线状态（0-未知，1-在线，2-离线），扩展字段，暂不使用
     * ！！！目前返回的值为null，无法判断是否在线！！！
     */
    private String status;
    /**
     * 所属区域
     */
    @TableField("regionIndexCode")
    private String regionIndexCode;
    /**
     * 创建时间
     */
    @TableField("createTime")
    private String createTime;
    /**
     * 更新时间
     */
    @TableField("updateTime")
    private String updateTime;
    /**
     * 平台状态启用/停用
     * 是否启用 1：启用 0：停用
     * 摄像头的isEnabled字段是启用/停用字段，从海康平台处取得全部的摄像头列表时（syncCompareCameraList），
     * 会遍历数据库中现有的摄像头记录，对于海康平台返回的列表中不包含的摄像头，标记为停用
     */
    @TableField("isEnabled")
    private Integer isEnabled;
    /**
     * 启用/停用名称
     */
    @TableField(exist = false)
    private String isEnabledName;
    /**
     * 是否接收报警
     * 是否接收报警 1：接收报警 0：不接收报警
     * 接收报警：会生成报警事件，并通知值班室
     * 不接收报警：忽略平台发来的该摄像头产生的报警，不生成报警事件，不通知值班室
     */
    @TableField("isRecvEnabled")
    private Integer isRecvEnabled;
    /**
     * 工段名称
     */
    @TableField(exist = false)
    private String deptName;
    /**
     * 工段ID
     */
    @TableField("dept_id")
    private Integer deptId;
    /**
     * 专业名
     */
    @TableField(exist = false)
    private String worksectionName;
    /**
     * 专业ID
     */
    @TableField("worksection_id")
    private Integer worksectionId;
    /**
     * 值班室名
     */
    @TableField(exist = false)
    private String deptDutyName;
    /**
     * 值班室ID
     */
    @TableField("dept_duty_id")
    private Integer deptDutyId;
    /**
     * 萤石预览地址（高清）
     */
    @TableField(exist = false)
    private String realtimeHd;
    /**
     * 萤石预览地址（流畅）
     */
    @TableField(exist = false)
    private String realtimeFast;
    /**
     * 萤石回放地址（本地录像）
     */
    @TableField(exist = false)
    private String historyLocal;
    /**
     * 萤石回放地址（云存储录像）
     */
    @TableField(exist = false)
    private String historyCloud;

 /*   public void setIsEnabled(int state){
        this.isEnabled = state;
        for (Enabled e : Enabled.values()){
            if(e.getIndex() == state){
                this.setIsEnabledName(e.getName());
                break;
            }
        }
    } */

    public String getIsEnabledName() {
        //！！！特别注意，这里必须加非空判断，不然在mybaits进行select的时候会报错！！！
        if(isEnabled != null) {
            for (Enabled e : Enabled.values()) {
                if (e.getIndex() == isEnabled) {
                    return isEnabledName = e.getName();
                }
            }
        }
        return null;
    }


}
